python添加复数高斯白噪声函数 高斯白噪声例题 您所在的位置:网站首页 python 添加高斯白噪声 python添加复数高斯白噪声函数 高斯白噪声例题

python添加复数高斯白噪声函数 高斯白噪声例题

2024-07-13 00:22| 来源: 网络整理| 查看: 265

1.dB

   (1)dB 是一个纯计数单位:dB = 10logX;

             X = 1000000000000000 = 10logX = 150 dB 

             X = 0.000000000000001 = 10logX = -150 dB

             dB的引入是为了把乘除关系变换为加减,便于工程中的运算。

   (2)dB是一个表征相对值的值,当考虑甲的功率相比于乙功率大或小多少个dB时,按下面计算公式:

            10lg(甲功率/乙功率)

            甲功率=乙功率:  10lg(1)=0dB;

            甲功率=2*乙功率:10lg(2)=3dB;

2.dBw:以1W为基准

python添加复数高斯白噪声函数 高斯白噪声例题_正态分布

3.dBm:以1mW为基准

         

python添加复数高斯白噪声函数 高斯白噪声例题_方差_02

         

python添加复数高斯白噪声函数 高斯白噪声例题_python添加复数高斯白噪声函数_03

         

python添加复数高斯白噪声函数 高斯白噪声例题_正态分布_04

    由此可见,0dBw是一个比0dBm大得多的多的单位,功率上相差1000倍。

   dBm 减 dBm 实际上是两个功率相除。比如:

(信号)30dBm - (噪声)0dBm = (信号功率)1000mW/1mW(噪声功率) = 1000 = 30dB。(式1)

4.SNR(信噪比=信号功率/噪声功率)(信噪比SNR(dB)=信号功率(dBW)-噪声功率(dBW))

    本来2个数相除((SNR)1000W/1W)转化为2个数相减30dBW-0dBW=30dB(SNR)

    若信号功率为0dBW,因此,噪声的实际功率-SNRdBW。(式1)

例题一:

在正弦信号上叠加功率为-20dBW的高斯白噪声。

clear all t = 0:0.001:10; x = sin(2*pi*t); snr = 20; %设定加性高斯白噪声功率 y = awgn(x,snr); %正弦信号上叠加高斯白噪声 subplot(2,1,1);plot(t,x);title('正弦信号x'); subplot(2,1,2);plot(t,y);title('叠加高斯白噪声的正弦信号'); z = y-x; var(z) %计算噪声功率(方差)ans = 0.01

函数awgn(x,snr)把加性高斯白噪声叠加到输入信号x中,snr以dB的形式指定噪声的功率。

这种情况下,信号的功率假设为0dBW(其实信号功率并不是0dBW,原来此处是假设!),噪声的功率实际上等于-snrdBW。于是,snr的值为20。

结果显示噪声功率为0.01,该值是由snr决定的。

例题二:

clear all t = 0:0.001:10; x = sin(2*pi*t); snr = 20; %设定加性高斯白噪声功率 y = awgn(x,snr,10); %正弦信号上叠加高斯白噪声 subplot(2,1,1);plot(t,x);title('正弦信号x'); subplot(2,1,2);plot(t,y);title('叠加高斯白噪声的正弦信号'); z = y-x; var(z) %计算噪声功率(方差)

函数awgn(x,snr,sigpower):假设输入信号的功率为sigpower(单位:dBW)(原来都是假设!)

10dBW-噪声功率=20dB,噪声功率=-10dBW

结果恰好:ans = 0.100。

例题三:终于计算信号功率了:awgn(x,snr,'measured')

clear all t = 0:0.001:10; x = sin(2*pi*t); snr = 20; %设定加性高斯白噪声功率 y = awgn(x,snr,'measured'); %正弦信号上叠加高斯白噪声 subplot(2,1,1);plot(t,x);title('正弦信号x'); subplot(2,1,2);plot(t,y);title('叠加高斯白噪声的正弦信号'); z = y-x; var(z) %计算噪声功率(方差)ans = 0.005

实际信号功率为0.5(sum(abs(x).^2)/length(x)),snr=20dB,噪声功率0.005,结果也验证了这一点。

例题四:用randn函数产生加性高斯白噪声

randn(n):返还一个n行n列的随机矩阵,每一行每一列都服从均值为0,方差为1的正态分布;

randn(m,n):返还一个m行n列的随机矩阵,每一行每一列都服从均值为0,方差为1的正态分布;

clear all t = 0:0.001:10; x = sin(2*pi*t); px = norm(x).^2/length(x); %计算信号x的功率 snr = 20; %信噪比,dB形式 pn = px./(10.^(snr./10)); %根据snr计算噪声功率 n = sqrt(pn)*randn(1,length(x)); %根据噪声功率产生相应的高斯白噪声序列 y = x+n; subplot(2,1,1);plot(t,x);title('正弦信号x') subplot(2,1,2);plot(t,y);title('叠加了高斯白噪声后的正弦信号') var(n)ans = 0.005

x为一向量,norm(x)=norm(x,2)返回向量的2范数:即sum(abs(x).^2)^1/2;

根据噪声功率产生相应的高斯白噪声序列,要对噪声功率进行开方运算。(D(CX)=C^2D(X))



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有